


/*认证*/
var AuthFalg=false;
/*加密*/
var EncryFalg = false;
/*异常*/
var ExceptionFlag = false;
/*防病毒*/
var DefendFalg = false;
/*重传*/
var ResendFalg=false;
/*完整性校验*/
var IntegrityFalg = false;

//协议对象
var designfuncs=new Array();
//认证
var auth=null;
//加密
var encry=null;
//异常
var exception=null;
//病毒
var virus=null;
//重传
var resend=null;
//完整性
var integrity=null;
//自定义
var customFields;
//zTree
var zTree;



	/*协议设计保存之前，获取开启的有关组件的信息*/
	function afterCheckFuncField() {
		//记录用户开启了哪些安全组件，即选中了哪些按钮
		designfuncs=[];

		if(auth!=null){
			//认证协商
			designfuncs.push("auth");
		}
		if(encry!=null){
			//数据加密
			designfuncs.push("encry");
		}
		if(exception!=null){
			//异常检测
			designfuncs.push("exception");
		}

		if(virus!=null){
			//防病毒设计
			designfuncs.push("virus");
		}
		if(resend!=null){
			//重传及重放
			designfuncs.push("resend");
		}

		if(integrity!=null){
			//完整性校验
			designfuncs.push("integrity");
		}

		//6种组件至少需要选一个，和中科院讨论后的结果
		if(designfuncs.length==0){
			//一个也没选
			alert("请选择设计功能！");
		}else{
			//打开弹出框(填写安全协议设计名和备注的那个框)
			$("#saveField").dialog('open');
		}

	};

	//弹出框的保存按钮的点击事件-----真正将数据保存到后台的事件
	$("#saveField_save").live("click",function() {
		/*请填写安全电力协议名是必填项，因此要判断*/
		var flag = $("#designName input[name='protocolName']").val().trim();
		var note= $("#designInfo input[name='protocolInfo']").val().trim();
		// flag=stripscript(flag).trim();
		$("#designName input[name='protocolName']").val(flag);
		// note=stripscript(note).trim();
		$("#designInfo input[name='designInfo']").val(note);

		if(flag == "") {
			//安全协议设计名为空
			alert("请填写安全电力协议名!");
			$("#designName input[name='protocolName']").val("");
			return;
		}else if(!IsSpecialCharDesignProtocolName(flag,"安全电力协议名")){
			//安全协议设计名存在特殊字符
			return ;
		}else if(!IsSpecialCharDesignProtocolNote(note,"协议备注信息")){
			//备注信息存在特殊字符
			return ;
		}else if(flag.length>10){
			//用户使用f12篡改input的属性，可能输入超过指定数目的字符
			//因此，单独再判断下
			alert("安全电力协议名字数不能超过10");
			return;
		}else if(note.length>20){
			//同上
			alert("协议备注信息字数不能超过20");
			return;
		}else {
			//通过了所有的检测
			$("#saveField_save").attr("disabled",true);
			//保存协议设计
			addProtocolDesign(designfuncs);
			//关闭弹出框
			$("#saveField").dialog('close');
		}
	});

	//保存协议设计时 判断协议名称是否合法
function IsSpecialCharDesignProtocolName(s)
{
	var str="[`~!@#$^%&*()=|{}':;',\\[\\].<>~！@#￥……&*（）——|{}‘’【】‘；：”“'。，、？]";
	for (var j = 0; j < s.length; j++) {
		if(str.indexOf(s.substr(j, 1))!=-1){
			alert("请勿在安全电力协议名中填写特殊字符");
			return false;
		}
	}
	return true;
}
	//保存协议设计时 判断备注信息是否合法
function IsSpecialCharDesignProtocolNote(s)
{
	var str="[`~!@#$^%&*=|{}''\\[\\]<>~！@#￥……&*（）——|{}‘’【】‘”“'？]";
	for (var j = 0; j < s.length; j++) {
		if(str.indexOf(s.substr(j, 1))!=-1){
			alert("请勿在协议备注信息中填写特殊字符");
			return false;
		}
	}
	return true;
}

	function stripscript(s,obj)
	{
		var pattern = new RegExp("[`~!@#$^%&*()=|{}':;',\\[\\].<>~！@#￥……&*（）——|{}【】‘；：”“'。，、？]");
		 var str="[`~!@#$^%&*()=|{}':;',\\[\\].<>~！@#￥……&*（）——|{}‘’【】‘；：”“'。，、？]";
		//格式 RegExp("[在中间定义特殊过滤字符]")
		 for (var j = 0; j < s.length; j++) {
		 	 if(str.indexOf(s.substr(j, 1))!=-1){
			 	alert(obj+"中请勿填写特殊字符");
			 	break;
			 }
		 }
	}

	$("#saveField_reset").live("click",function() {
		$("#saveField input").val("");
	});

	/*设置protocolName*/
    //点击新建协议的地方，弹出框里面的六种协议按钮的点击事件
	$("#IEC-60870-5-101").live("click", function() {
		setProtocolName("IEC-60870-5-101");
	});

	$("#IEC-60870-5-104").live("click", function() {
		setProtocolName("IEC-60870-5-104");
	});

	$("#IEC-61850-5-MMS").live("click", function() {
		setProtocolName("IEC-61850-MMS");
	});

	$("#IEC-61850-5-SV").live("click", function() {
		setProtocolName("IEC-61850-SV");
	});

	$("#IEC-61850-GOOSE").live("click", function() {
		setProtocolName("IEC-61850-GOOSE");
	});

	$("#DNP3").live("click", function() {
		setProtocolName("DNP3");
	});

	/*设置type*/
	$("#way_0rtt").live("click", function() {
		setIdentWay("0-RTT");
	});
	$("#way_1rtt").live("click", function() {
		setIdentWay("1-RTT");
	});

	$(".attrButton").click(function() {
		//解决ie8不兼容 input中placeholder属性
		$(function() {
			// 如果不支持placeholder，用jQuery来完成
			if(!isSupportPlaceholder()) {
				// 遍历所有input对象, 除了密码框
				$('input ').not("input[type='password ']").each(
					function() {
						var self = $(this);
						var val = self.attr("placeholder");
						input(self, val);
					}
				);

				/**
				 *  对password框的特殊处理
				 * 1.创建一个text框 
				 * 2.获取焦点和失去焦点的时候切换
				 */
				$('input[type="password" ] ').each(
					function() {
						var pwdField = $(this);
						var pwdVal = pwdField.attr('placeholder ');
						var pwdId = pwdField.attr('id ');
						// 重命名该input的id为原id后跟1
						pwdField.after('<input id="' + pwdId + '1" type="text" value=' + pwdVal + ' autocomplete="off" />');
						var pwdPlaceholder = $('#' + pwdId + '1');
						pwdPlaceholder.show();
						pwdField.hide();
						pwdPlaceholder.focus(function() {
							pwdPlaceholder.hide();
							pwdField.show();
							pwdField.focus();
						});
						pwdField.blur(function() {
							if(pwdField.val() == '') {
								pwdPlaceholder.show();
								pwdField.hide();
							}
						});
					});
			}
		});
		// 判断浏览器是否支持placeholder属性 
		function isSupportPlaceholder() {
			var input = document.createElement('input');
			return 'placeholder' in input;
		} // jQuery替换placeholder的处理
		function input(obj, val) {
			var $input = obj;
			var val = val;
			$input.attr({
				value: val
			});
			$input.focus(function() {
				if($input.val() == val) {
					$(this).attr({
						value: ""
					});
				}
			}).blur(function() {
				if($input.val() == "") {
					$(this).attr({
						value: val
					});
				}
			});
		}
	});



/********************协议设计设置数据**********************/
//设置通用电力协议名
function setProtocolName(name) {
	window.sessionStorage.setItem("protocolName", name);
}

//设置认证协商方式
function setIdentWay(name) {
	window.sessionStorage.setItem("auth_type", name);
}

//设置安全电力协议名
function setDesignName(name) {
	window.sessionStorage.setItem("designName", name);
}

//设置安全电力协议备注
function setDesignInfo(info) {
	window.sessionStorage.setItem("designInfo", info);
}

function checkFieldLength(beforeName,lengthName) {
	var value = $("input[name="+lengthName+"]").val();
    if(value!=''&&value!=undefined){
        var reg = /^[0-9]*$/;
        if(reg.test(value)!=true){
            alert("字段长度输入不规范");
            $("input[name="+lengthName+"]").val('');
            return false;
        }else {
            autoFillStart(beforeName,lengthName);
        }
    }
}

function autoFillStart(beforeName,lengthName) {
    var endValue = parseInt($("input[name="+beforeName+"]").val());
    var length = parseInt($("input[name="+lengthName+"]").val());

    if(endValue!=''&&endValue!=undefined&&!isNaN(endValue)){
        $("input[name="+lengthName.replace('02','05')+"]").val(endValue+1);
        $("input[name="+lengthName.replace('02','06')+"]").val(endValue+length);
	}else {
        $("input[name="+lengthName.replace('02','05')+"]").val(0);
        $("input[name="+lengthName.replace('02','06')+"]").val(length-1);
	}
}

function checkNumReg() {
	var value = $(this).val();
    var reg = /^[0-9]*$/;
    if(reg.test(value)!=true){
    	alert("字段位置输入不规范");
        $(this).val("");
	}
}